package com.apobates.forum.toro.proxy.strategy;

import com.apobates.forum.toro.proxy.MapperAttrExpression;
import java.util.stream.Stream;

/**
 * 聚合策略
 * 适用于: 一对一属性聚合模式
 * @param <E> 最终结果类型
 * @param <T> 起始对象类型
 */
@FunctionalInterface
public interface MapperStrategy<E,T> {
    /**
     *
     * @param selectExprStream
     * @param targetObj 目标对象类型
     * @param selectObj 起始对象实例
     */
    void consumer(Stream<MapperAttrExpression> selectExprStream, E targetObj, T selectObj);
}
